package com.jwmp.rbac.mapper;

import com.jwmp.rbac.domain.Module;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ModuleMapper {
    /**
     * 查询列表操作
     * @return 模块内容包括所有的权限
     */
    List<Module> selectList();

    /**
     * 查询某个角色不存在权限列表以及所在的模块
     * @param roleId
     * @return 模块内容包括所有该角色没有的权限
     */
    List<Module> selectRoleNoPermissionModules(@Param("roleId") Long roleId);

    /**
     * 通过模块名查询模块名称
     * @param name  权限模块名称
     * @return      模块对象
     */
    Module selectByName(@Param("name") String name);

    /**
     * 权限模块插入
     * @param module
     */
    Long insert(Module module);

    /**
     * 查询不包含权限的模块集合
     * @return
     */
    List<Module> selectBaseList();
}
